home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / GRAPHICS.SWG / 0112_Graphic Compression.pas < prev    next >
Pascal/Delphi Source File  |  1994-08-24  |  1KB  |  32 lines

  1. {
  2.  TW> I'll need an algorithm to make a graphic smaller.
  3.  
  4.  TW> I will read a 640x480x256 and want to make it a smaller size.
  5.  TW> For example 80x60x256 or 160x120x256 or something else.
  6.  TW> Maybe someone could send me an algorithm or a sample.
  7.  
  8.    If you simply want a smaller version of the original image, then
  9.    it's easy.
  10.  
  11.   ie, for 640x480 to 160x120 ( 1/4 original size)
  12. }
  13.  
  14.   FOR Y := 0 TO 119 { 160x120 Y axis }
  15.     BEGIN
  16.       NewY := (Y * 4);  { corresponding point on 640x480 Y axis }
  17.       FOR X := 0 TO 159 DO  { 160x120 X axis }
  18.         BEGIN
  19.           NewX := (X * 4); { corresponding point on 640x480 X axis }
  20.           Image160x120[Y, X] := Image640x480[NewY, NewX];
  21.         END;
  22.     END;
  23.  
  24.   See, simply multiply each point in 160x120 by 4 to get corresponding
  25.   point in 640x480.  This of course skips all pixels in between...
  26.   Also, the in the example above, note that you cannot have
  27.   an array of [0..479, 0..639] of Byte!  I just put that in there
  28.   to show how it is done.
  29.  
  30.   Eric Miller
  31.   mysticm@ephsa.sat.tx.us
  32.